// *************************************************************************** // * f: PIT-40 xml * // * * // * roczne rozliczenie za 2014 r. * // * * // * 15.12.2014 WA-PRO (Administrator) 15.01.2015 (ML) * // *************************************************************************** //#declare opis$ char(1000) local // if not (val('¢')=243) // tylko DOS opis$='' end dl=0 ////////////k=0 j=0 t$='' // rodz_dok=0 nr_dok$='' data=0 datap=0 datka=0 //adres pracownika kraj_p$='' woj_p$='' powiat_p$='' gmina_p$='' ulica_p$='' dom_p$='' lokal_p$='' miasto_p$='' kod_p$='' poczta_p$='' //strona 2 przychod=0 koszty=0 koszty_roczne=0 koszty_roczne2=0 dochod=0 dochod_bez_skladek=0 sdochod=0 zaliczka=0 pd1=0 zwykle=0 wyzsze=0 koszty36=0 //strona 3 zdrowotne=0 zdrowotneo1=0 pd1_bez_zdrowotne=0 smniejsze=0 swieksze=0 //wska«niki pr1=0 pr2=0 pr3=0 pod1=0 pod2=0 pod3=0 ulga=0 //ulga prorodzinna od 2007 r. ulga_rodz=0 ulga_dz=0 // inne=0 inne$='' // nazwa_pliku$='' l1=0 l2=0 tekst$='' kod_us$='' rola$='' id=0 id$='' w=0 end // //-------------------------------- data=Data(31,12,rokpit) UstawDat©DanychPodstawowych(data) //-------------------------------- pr1=0 pod1=0 pr2=0 pod2=0 pr3=0 pod3=0 Clear(Progi podatkowe) Progi podatkowe (Rok)=rokpit Set(Progi podatkowe) Loop Next(Progi podatkowe) if eof() or Progi podatkowe (Rok)<>rokpit break end case of pr1=0 pr1=Progi podatkowe (Do kwoty) pod1=Progi podatkowe (Procent podatku) of pr2=0 pr2=Progi podatkowe (Do kwoty) pod2=Progi podatkowe (Procent podatku) of pr3=0 pod3=Progi podatkowe (Procent podatku) end end // Koszty uzyskania i ulgi podatkowe (Rok)=rokpit Get(Koszty uzyskania i ulgi podatkowe) if found() ulga=Koszty uzyskania i ulgi podatkowe (Ulga podatkowa roczna) koszty_roczne=Koszty uzyskania i ulgi podatkowe (Koszty roczne) koszty_roczne2=Koszty uzyskania i ulgi podatkowe (Koszty podwy¾szone roczne) ulga_rodz=Koszty uzyskania i ulgi podatkowe (Ulga prorodzinna) // od 2007 r. end if ulga=0 or koszty_roczne=0 or koszty_roczne2=0 Ostrze¾enie('Prosz© uzupeˆni† kartotek© "Koszty uzyskania i ulgi podatkowe" o roczne wartoœci kosztów i ulgi') end if (rokpit>2006 and rokpit<2009) and ulga_rodz=0 Ostrze¾enie('Prosz© uzupeˆni† kartotek© "Koszty uzyskania i ulgi podatkowe" o roczne wartoœci kosztów i ulgi') end // datka=0 Podstawowe dane podatkowe (Data Od)=data Set(Podstawowe dane podatkowe) Loop Previous(Podstawowe dane podatkowe) if eof() or (Podstawowe dane podatkowe (Data Od)0 koszty36=koszty_p37 else case of zwykle=1 and wyzsze=1 koszty36=3 of zwykle=1 koszty=1 koszty36=1 of wyzsze=1 koszty36=3 else koszty36=0 end end // // kontrola limitu kosztów if k>koszty_roczne k=koszty_roczne d=p-k end d=Max(d,0) // if koszty_uz>0 koszty36=5 k=koszty_uz d=Max(p-koszty_uz,0) end przychod=p+pa+p1+p7+po7+p8+pz koszty=k+ka+k1+k7 dochod=d+d1+d7+d8+dz zaliczka=z+z1+z7+z8+zz // blok G - ograniczenie odliczeä od dochodu do wysoko˜ci dochodu spoleczne=Min(spoleczne,dochod) if swiadczenia>0 swiadczenia=Min(swiadczenia,(dochod-spoleczne)) end // dochod_bez_skladek=Max(dochod-spoleczne,0) sdochod=Round(Max(dochod_bez_skladek-skl_org-swiadczenia,0),1) if sdochod>pr2 pd1=pod2/100*(pr2-pr1)+pod1/100*pr1-ulga+(sdochod-pr2)*pod3/100 //ulga->roczna else if sdochod>pr1 pd1=pod1/100*pr1-ulga+(sdochod-pr1)*pod2/100 //ulga->roczna else pd1=sdochod/100*pod1-ulga //ulga->roczna end end pd1=Max(pd1,0) smniejsze=0 swieksze=0 zdrowotne=Min(zdrowotnep,pd1) zdrowotneo1=Min(zdrowotneo,pd1) // // obliczenie ulgi prorodzinnej - od 2007 r. ulga_dz=0 pd1_bez_zdrowotne=pd1-zdrowotneo1 if rokpit>2006 Clear(Ulga prorodzinna) Ulga prorodzinna (Rok)=rokpit Set(Ulga prorodzinna) Previous(Ulga prorodzinna) if not eof() if Ulga prorodzinna (Rok) =rokpit if rokpit<2009 ulga_dz=ulga_rodz*Ulga prorodzinna (Ilo˜† dzieci) else //....od rozliczenia za 2009 r. ...... //.... ale rozliczenie jej ju¾ nie przez pˆatnika ulga_dz=Round((ulga_rodz/12)*Ulga prorodzinna (Ilo˜† miesi©cy),0.01) end end end end inne=0 inne$='' ulga_dz=Min(pd1_bez_zdrowotne,ulga_dz) pd1_bez_zdrowotne=pd1_bez_zdrowotne-ulga_dz // if ulga_dz>0 inne$='ulga na dzieci (zgodnie z art.27f ustawy)' inne=ulga_dz // end // if rokpit<2006 pd1_bez_zdrowotne=Round(pd1_bez_zdrowotne,0.1) else pd1_bez_zdrowotne=Round(pd1_bez_zdrowotne,1) end // if pd1_bez_zdrowotne>zaliczka smniejsze=Max(pd1_bez_zdrowotne-zaliczka,0) //niedoplata else swieksze=Max(zaliczka-pd1_bez_zdrowotne,0) //nadplata end if (val('¢')=243) //windows //#id$=Pracownik (Nr ewidencyjny) //#PobierzPracownika(id$) else id=Pracownik (Nr ewidencyjny) PobierzPracownika(id) end // Urz©dy Skarbowe Pracownika (Od dnia)=data Set(Urz©dy Skarbowe Pracownika) Previous(Urz©dy Skarbowe Pracownika) if eof() Clear(Urz©dy Skarbowe Pracownika) end if Urz©dy Skarbowe Pracownika (Nr Urz©du)>0 PobierzUrz¥dSkarbowy(Urz©dy Skarbowe Pracownika (Nr Urz©du)) if (val('¢')=243) //windows //#kod_us$=Urz¥d Skarbowy(Kod Urz©du) else Kody urz©d¢w skarbowych (Nazwa Urz©du)=Urz¥d Skarbowy (Nazwa) Get(Kody urz©d¢w skarbowych) if found() kod_us$=Kody urz©d¢w skarbowych (Kod) end end end // // ******* e-PIT ******************************* Free(Kolejka) w=1 rola$='Pˆatnik' tekst$='' call AddKolejka tekst$='' call AddKolejka tekst$='' call AddKolejka tekst$='PIT-40' call AddKolejka tekst$='20' call AddKolejka if cel=1 //korekta cel=2 else cel=1 end // if cel=2 //korekta if (val('¢')=243) // tylko Windows //#Pytania ORD_ZU Win(opis$) else Pytania ORD_ZU (t1$,t2$,t3$,t4$) end end // tekst$=''&num2txt(cel)&'' call AddKolejka tekst$=''&num2txt(rokpit)&'' call AddKolejka tekst$=''&kod_us$&'' call AddKolejka tekst$='' call AddKolejka if Firma (Rodzaj pˆatnika)='Osoba fizyczna' Pobierz dane identyfikacyjne pˆatnika (data, '', rodz_dok, nr_dok$, datap) tekst$=''&Funkcja usuwaj¥ca znaki przestankowe (Firma (NIP))&'' call AddKolejka tekst$=''&Kodowanie UNICODE (Dane ewidencyjne osoby fizycznej (Pierwsze imi©))&'' call AddKolejka tekst$=''&Kodowanie UNICODE (Dane ewidencyjne osoby fizycznej (Nazwisko))&'' call AddKolejka tekst$=''&Format(Dane ewidencyjne osoby fizycznej (Data urodzenia),'d10-')&'' call AddKolejka tekst$='' call AddKolejka else tekst$=''&Funkcja usuwaj¥ca znaki przestankowe (Firma (NIP))&'' call AddKolejka tekst$=Kodowanie UNICODE (Firma (Peˆna nazwa firmy)) call AddKolejka if Firma (REGON)<>'' tekst$=''&Firma (REGON)&'' else tekst$='' end call AddKolejka end tekst$='' call AddKolejka // ------ Podatnik --------------- //tekst$='' tekst$='' call AddKolejka // dla deklaracji skˆadanych od 1.01.2012 r. if not Pracownik (Osoba prowadz¥ca dziaˆalno˜† gospodarcz¥) if Pracownik (PESEL)<>'' tekst$=''&Pracownik (PESEL)&'' call AddKolejka end else tekst$=''&Funkcja usuwaj¥ca znaki przestankowe (Pracownik (NIP))&'' call AddKolejka end tekst$=''&Kodowanie UNICODE (Pracownik (Imi©))&'' call AddKolejka tekst$=''&Kodowanie UNICODE (Pracownik (Nazwisko))&'' call AddKolejka tekst$=''&Format(Pracownik (Data urodzenia),'d10-')&'' call AddKolejka tekst$='' call AddKolejka Adres zameldowania lub zamieszkania pracownika III (data,kraj_p$,woj_p$,powiat_p$,gmina_p$,ulica_p$,dom_p$,lokal_p$,miasto_p$,kod_p$,poczta_p$) tekst$='' call AddKolejka if kraj_p$='Polska' tekst$=''&'PL'&'' call AddKolejka tekst$=''&Kodowanie UNICODE (woj_p$)&'' call AddKolejka tekst$=''&Kodowanie UNICODE (Powiat_p$)&'' call AddKolejka tekst$=''&Kodowanie UNICODE (gmina_p$)&'' call AddKolejka if ulica_p$<>'' tekst$=''&Kodowanie UNICODE (ulica_p$)&'' call AddKolejka end tekst$=''&dom_p$&'' call AddKolejka if lokal_p$<>'' tekst$=''&lokal_p$&'' call AddKolejka end tekst$=''&Kodowanie UNICODE (miasto_p$)&'' call AddKolejka tekst$=''&kod_p$&'' call AddKolejka tekst$=''&Kodowanie UNICODE (poczta_p$)&'' call AddKolejka tekst$='' call AddKolejka else tekst$=''&kraj_p$&'' call AddKolejka if kod_p$<>'' tekst$=''&kod_p$&'' call AddKolejka end tekst$=''&Kodowanie UNICODE (miasto_p$)&'' call AddKolejka if ulica_p$<>'' tekst$=''&Kodowanie UNICODE (ulica_p$)&'' call AddKolejka end if dom_p$<>'' tekst$=''&dom_p$&'' call AddKolejka end if lokal_p$<>'' tekst$=''&lokal_p$&'' call AddKolejka end tekst$='' call AddKolejka end tekst$='' call AddKolejka tekst$='' call AddKolejka // ----- Pozycje szczeg¢lowe ----------- tekst$='' call AddKolejka if z_pitr$<>'' tekst$='1' call AddKolejka end // if p>0 or k>0 or pa>0 or ka>0 or d>0 or z>0 tekst$=''&num2txt(koszty36)&'' call AddKolejka tekst$=''&num2txt(p)&'' call AddKolejka if k>0 tekst$=''&num2txt(k)&'' call AddKolejka end tekst$=''&num2txt(d)&''&num2txt(z)&'' call AddKolejka if pa>0 tekst$=''&num2txt(pa)&'' call AddKolejka end if ka>0 tekst$=''&num2txt(ka)&'' call AddKolejka end end // tekst$='000' call AddKolejka tekst$='000' call AddKolejka tekst$='000' call AddKolejka // umowy zlec. i o dzieˆo..... - art.13 ustawy tekst$=''&num2txt(p1)&'' call AddKolejka if k1>0 tekst$=''&num2txt(k1)&'' call AddKolejka end tekst$=''&num2txt(d1)&'' call AddKolejka tekst$=''&num2txt(z1)&'' call AddKolejka // prawa autorskie ......- art.18 ustawy tekst$=''&num2txt(p7)&'' call AddKolejka tekst$=''&num2txt(d7)&'' call AddKolejka tekst$=''&num2txt(z7)&'' call AddKolejka if po7>0 tekst$=''&num2txt(po7)&'' call AddKolejka end if k7>0 tekst$=''&num2txt(k7)&'' call AddKolejka end // inne «r¢dˆa tekst$=''&num2txt(p8)&'' call AddKolejka tekst$='0' call AddKolejka tekst$=''&num2txt(d8)&'' call AddKolejka tekst$=''&num2txt(z8)&'' call AddKolejka // tekst$=''&num2txt(przychod)&'' call AddKolejka tekst$=''&num2txt(koszty)&'' call AddKolejka tekst$=''&num2txt(dochod)&'' call AddKolejka tekst$=''&num2txt(zaliczka)&'' call AddKolejka // if spoleczne>0 tekst$=''&num2txt(spoleczne)&'' call AddKolejka //tekst$='0' //call AddKolejka end if swiadczenia>0 tekst$=''&num2txt(swiadczenia)&'' call AddKolejka end // //tekst$='0' //call AddKolejka //tekst$='0' //call AddKolejka // tekst$=''&num2txt(sdochod)&'' call AddKolejka tekst$=''&num2txt(pd1)&'' call AddKolejka //tekst$='0' //call AddKolejka tekst$=''&num2txt(pd1)&'' call AddKolejka // if zdrowotneo>0 or zdrowotneo1>0 tekst$=''&num2txt(zdrowotneo)&'' call AddKolejka tekst$='0' call AddKolejka tekst$=''&num2txt(zdrowotneo1)&'' call AddKolejka end if inne$<>'' or inne>0 if inne$<>'' tekst$=''&inne$&'' else tekst$=''&chr(255)&'' end call AddKolejka tekst$=''&num2txt(inne)&'' call AddKolejka end // tekst$=''&num2txt(pd1_bez_zdrowotne)&'' call AddKolejka if swieksze>0 tekst$=''&num2txt(swieksze)&'' call AddKolejka else tekst$=''&num2txt(smniejsze)&'' call AddKolejka end tekst$='' call AddKolejka // tekst$='' call AddKolejka tekst$=Kodowanie UNICODE ('Za uchybienie obowi¥zkom pˆatnika grozi odpowiedzial') call AddKolejka tekst$=Kodowanie UNICODE ('no˜† przewidziana w Kodeksie karnym skarbowym.') call AddKolejka tekst$='' call AddKolejka //zaˆacznik ORD-ZU if cel=2 and (t1$<>'' or t2$<>'' or t3$<>'' or t4$<>'' or opis$<>'') tekst$='' call AddKolejka tekst$='' call AddKolejka tekst$='' call AddKolejka tekst$='ORD-ZU' call AddKolejka tekst$='2' call AddKolejka tekst$='' call AddKolejka tekst$='' call AddKolejka tekst$='' call AddKolejka // if not (val('¢')=243) // tylko DOS if t1$<>'' //tekst$=Kodowanie UNICODE (t1$)&chr(13) tekst$=Kodowanie UNICODE (SubString(t1$,1,50)) & | Kodowanie UNICODE (SubString(t1$,51,100)) //&chr(13) call AddKolejka end if t2$<>'' //tekst$=Kodowanie UNICODE (t2$)&chr(13) tekst$=Kodowanie UNICODE (SubString(t2$,1,50)) & | Kodowanie UNICODE (SubString(t2$,51,100)) //&chr(13) call AddKolejka end if t3$<>'' //tekst$=Kodowanie UNICODE (t3$)&chr(13) tekst$=Kodowanie UNICODE (SubString(t3$,1,50)) & | Kodowanie UNICODE (SubString(t3$,51,100)) //&chr(13) call AddKolejka end if t4$<>'' //tekst$=Kodowanie UNICODE (t4$) tekst$=Kodowanie UNICODE (SubString(t4$,1,50)) & | Kodowanie UNICODE (SubString(t4$,51,100)) //&chr(13) call AddKolejka end else // --- tylko WIN //#dl=len(opis$) //#j=1 //#while j
dl //# tekst$=Kodowanie UNICODE (SubString(opis$,j,dl-j+1)) //# else //# tekst$=Kodowanie UNICODE (SubString(opis$,j,50)) //# end //# call AddKolejka //# j=j+50 //#end end // tekst$='' call AddKolejka tekst$='' call AddKolejka tekst$='' call AddKolejka tekst$='' call AddKolejka end tekst$='' call AddKolejka //////////// nazwa_pliku$='d'&num2txt(Pracownik (Nr ewidencyjny))&'.xml' Transfer PIT (nazwa_pliku$,0) free(Kolejka) AddKolejka: l1=len(tekst$) l2=1 while l2<=l1 Kolejka(Num1)=w Kolejka(Txt1)=substring(tekst$,l2,1) Add(Kolejka,'Num1') l2=l2+1 w=w+1 end